package co.edu.uniandes.services;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import co.edu.uniandes.dto.Pais;
import co.edu.uniandes.services.constantes.ConsultaConstantes;


/**
 * 
 * @author Rafael Guillermo Blanco Banquez <rafaelg.blancob@gmail.com>
 *
 */
public class ServicioPais extends UnicastRemoteObject implements IServicioPais{
	
	/**
	 * Contructor
	 * @throws RemoteException
	 */
	public ServicioPais() throws RemoteException {
		super();
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * Metodo que returna una lista de Paises Disponibles  
	 * @return Vector[]
	 */
	public Vector<Pais> obtenerPais() throws Exception{
		Vector<Pais> vector = new Vector<Pais>();
		
		//Llenamos el Vector con las por pais
		//Primero Obtenemos una conexion a la Base de datos
		Connection connection = ConexionBD.getInstance().getConection();
		//Creamos el statement
		Statement estatement = connection.createStatement();
		//Creamos el ResulSet 
		ResultSet resultSet = estatement.executeQuery(ConsultaConstantes.CONSULTA_PAIS);
		
		Pais unPais;
		//Recorremos el resultset
		while(resultSet.next()){
			unPais = new Pais();
			unPais.setId( resultSet.getInt("id") );
			unPais.setNombre( resultSet.getString("nombre") );
			//Adicionamos todas las ciudades al vector				
			vector.add( unPais );
		}
		resultSet.close();
		return vector;
		
	}

	@Override
	public void insertar(Pais objeto) throws Exception {
		
		
	}

	@Override
	public List<Pais> consultar() throws Exception {
		
		List<Pais> listaPaises = new ArrayList<Pais>();
		
		//Llenamos el Vector con las por pais
		//Primero Obtenemos una conexion a la Base de datos
		Connection connection = ConexionBD.getInstance().getConection();
		//Creamos el statement
		Statement estatement = connection.createStatement();
		//Creamos el ResulSet 
		ResultSet resultSet = estatement.executeQuery(ConsultaConstantes.CONSULTA_PAIS);
		
		Pais pais;
		//Recorremos el resultset
		while(resultSet.next()){
			
			pais = new Pais();	
			pais.setId(resultSet.getInt("id"));
			pais.setNombre(resultSet.getString("nombre"));
			
			listaPaises.add( pais );
		}
		estatement.close();
		resultSet.close();
		//connection.close();
		return listaPaises;
	}

	@Override
	public void eliminar(Integer id) throws Exception {
		// TODO Auto-generated method stub
		
	}
}
